//
// Copyright (c) 2019-2022 YD-Digital
//
#include <yangipc/YangIpc.h>
#include <yangutil/sys/YangCTimer.h>
#include <stdio.h>
#include <string.h>
#include <signal.h>
#include <unistd.h>

#include <pthread.h>

YangCTimer* m_5stimer=NULL;

extern void yang_create_timer(YangCTimer* timer,void* user,int32_t taskId,int32_t waitTime);

void g_yang_main_doTask(int32_t taskId, void *user) {
	if (user == NULL)	return;

	YangIpc *ipc = (YangIpc*) user;
	if (taskId == 5) {
		ipc->checkAlive(&ipc->session);
	}
}
void yang_initCtimer(YangIpc* ipc){
	m_5stimer = (YangCTimer*) calloc(1, sizeof(YangCTimer));
	yang_create_timer(m_5stimer, ipc, 5, 5000);
	m_5stimer->doTask = g_yang_main_doTask;

	yang_timer_start(m_5stimer);
}
void yang_stopCtimer(){
	yang_timer_stop(m_5stimer);
	yang_destroy_timer(m_5stimer);
	yang_free(m_5stimer);
}

YangIpc ipc;

int yd_metaRTC_init()
{
	memset(&ipc,0,sizeof(YangIpc));
    yang_create_ipc(&ipc);
    ipc.init(&ipc.session);
    ipc.start(&ipc.session);

    yang_initCtimer(&ipc);
	return 0;
}

int yd_metaRTC_exit()
{
	yang_stopCtimer();
	yang_destroy_ipc(&ipc);
	return 0;
}
